1. Field of the Invention
The present invention relates generally to communication networks. More particularly, the present invention relates to provisioning virtual circuits in virtual paths created to provide data communication paths across communication networks.
2. Background of the Invention
End users desiring ADSL service obtain connectivity to communication networks through ADSL-ready personal computers or other ADSL-ready network equipment. The end user's ADSL-ready device is coupled to an ADSL port of a digital subscriber line access multiplexer (DSLAM). The DSLAM can be located in a telephone company's central office. The DSLAM is a switch that aggregates multiple ADSL user connections on the same physical link. The DSLAM is physically coupled to a switch on a communication subnetwork, such as an asynchronous transfer mode (ATM) subnetwork. The communication subnetwork generally comprises a plurality of switches. One or more of these switches can be physically connected to a broadband gateway. The switch physically linked to the broadband gateway may be the same switch that couples the DSLAM to the ATM network. However, in general, different switches may be used. The broadband gateway provides efficient transmission of data to an internet service provider (ISP). The broadband gateway can also transmit data for multiple users. For example, the broadband gateway can aggregate data received from multiple DSLAMS.
The broadband gateway transmits data over a logical connection to an ISP. The logical connection can be physically implemented through one or more ATM switches. The broadband gateway is not required. That is, data destined for the ISP reach the ISP by direct transmission between the switches on the ATM network. However, because the bandwidth management services of the broadband gateway are not available, transmitting data using on network switches usually makes less efficient use of available network bandwidth.
The functionality provided by the broadband gateway can be further divided into ingress and egress function. The ingress function refers to the data that enters the broadband gateway from the end user side. The egress function refers to the data that leaves the broadband gateway destined for the ISP. Using the concept of ingress and egress functionality, the broadband gateway can be implemented as multiple broadband gateway switches. One or more of the broadband gateways handle the ingress portion of the data flow, and the one or more of the broadband gateways handle the egress portion of the data flow. For, example, it has been found advantageous to use a single egress broadband gateway to transmit data from multiple ingress broadband gateways to an ISP. The advantage of using a single egress broadband gateway is that it further aggregates the data provided to the ISP.
A network management system (NMS) is responsible for end-to-end connections from the end user to the broadband gateway. This connection is a virtual path connection. The virtual path connection is identified by a virtual path identifier (VPI). A virtual connection is also established as described above from the broadband gateway to the ISP. It is assumed that the virtual connection from the broadband gateway to the ISP is pre-established. By pre-establishing this connection, when the user sends data over the connection to the broadband gateway, it is automatically routed to the ISP.
To enable this automatic communication of data from end users to the ISP, a virtual path connection is established by broadband gateway. One or more virtual circuit connections can be provisioned in the virtual path to provide data connectivity for end users over the communication network. A virtual circuit connection must be set up for each end user to the broadband gateway. In addition, the broadband gateway must switch the input port associated with the virtual path to an output port associated with the virtual path to the ISP. Each virtual circuit connection in a virtual path connection is identified by a virtual circuit identifier (VCI).
Multiple virtual circuit connections can be set up in a single virtual path. Thus, a virtual path establishes a pipe for a plurality of virtual circuit connections. For example, assume a virtual path identified by VPI 1 is provisioned for two end users. A virtual circuit connection having a VCI value of 32 can be provisioned for the first end user, and a virtual circuit connection having a VCI value of 33 can be provisioned for the second end user.
The end users in this case can be identified by a VPI/VCI pair. For example, the first end user is identified by VPI/VCI pair 1/32, and the second end user is identified by the VPI/VCI pair 1/33. Thus, a VPI/VCI pair identifies a virtual path connection and a virtual circuit within that virtual path connection. The VPI/VCI pair must be unique for each end user.
Broadband gateways also typically provide the ability to establish bulk virtual circuit connections. A request to establish such a bulk virtual circuit connection is termed a bulk virtual circuit connection request. When a bulk virtual circuit connection request is made, a range of virtual circuits is established. A primary advantage of using the bulk virtual circuit connection request is that the virtual circuits in a virtual path are set up at one time, thereby precluding the need to set up each virtual circuit connection individually. For example, after a bulk virtual circuit connection request is successfully established, a new virtual circuit can be provisioned for an end user using any of the virtual circuit connections established in response to the request.
VPIs and VCIs are set up on a port-by-port basis. There may be, but need not be, any correlation between the VPIs and VCIs assigned to the various ports that make up the virtual connection from the resident to the broadband gateway. However, the VCI for a particular virtual connection must be the same for all of the ports in that virtual path. Moreover, the VPI/VCI pairs assigned to the different virtual circuits must be unique for each end user.
A network management system (NMS) executes software responsible for managing network resources to provide ADSL services to end users. One aspect of this management function is setting up and managing the virtual paths and virtual circuits required to provision services.
To establish a bulk VC connection, the NMS sends a bulk virtual circuit connection request to, for example, a Nortel Networks Service Creation System (SCS). Typically, the request is sent through a common object request broker architecture (CORBA) gateway. The SCS server is responsible for managing the broadband gateways. The bulk virtual circuit connection is typically established in response to a request for a VCI in a range for which there is no current VCI. When the bulk virtual circuit connection request is made, a range of virtual circuit connections having VCIs including the requested VCI is set up. Bulk virtual circuit connection requests can also be made when the available VCIs begin to expire. In this case, the bulk virtual connection request continues the range of VCIs available in the virtual path. When the request is satisfied, the SCS sends a message back to the NMS indicating that the request is set up.
Requests to set up VCIs are processed substantially simultaneously by the NMS. This can lead to problems where there are multiple requests. For example, suppose there is a first request for provisioning an end user with a virtual circuit connection having a VCI of 128. If the requested VCI is beyond the range of currently provisioned VCIs, the NMS sends a bulk virtual circuit connection request to the SCS server to establish a virtual path having VCIs with a range that covers the requested VCI. Further, assume that a second request for provisioning an end user with a virtual circuit connection is made. In this case, that the second request requires that the NMS send a second bulk virtual circuit connection. Assume that the second request has at least one VCI in common with the first and pending bulk virtual circuit connection request.
In such a case, the first bulk virtual circuit connection request completes successfully, and establish a virtual path having VCIs with the desired range. However, when the second request reaches the SCS server, the request will be denied. That is, the SCS server will indicate that the desired VC bulk connection cannot be made because the VCI range is already being used. An error message indicating the range is already in use is returned in response to the second request.
This error arises whether only one or a plurality of VCIs are the same in the pending and new bulk virtual circuit connection requests. Moreover, the error message returned is the same in either case. Because the error message is the same, determining the cause of the problem can be difficult or impossible.
In response to such errors, the NMS is designed to reset itself to a stable state. The stable state is a prior state that the NMS knows is a valid state. The NMS returns to this state despite successful completion of the first request. This is because the failure of the second request casts doubt as to the validity of the first request.
Another problem arises because users can provision virtual paths without using NMS. For example, an operator can use a console coupled to the SCS to request and establish one or more virtual paths. Using the console, the user can perform bulk virtual circuit connection requests or establish VCIs one at a time. These requests can conflict with NMS-generated provisioning requests.
Another problem with NMS is that if there are two requests that call the same method at approximately the same time the methods can merge. This means that the two methods become a single method. As a result, one of the requests is lost.